<?php

if ((isset($_GET['id'])) && (intval($_GET['id']) > 0)) {
    //détermine le caractère euro pour éviter qu'il ne s'affiche pas
    $euro = ' ' . iconv('UTF-8', 'windows-1252', '€');

    //Initialisation variable
    $totalHT = $total = 0;

    $id = intval($_GET['id']);
    require('include/fpdf.php');
    require_once '../include/config.php';

    class PDF extends FPDF {

        // En-tête
        function Header() {

            global $titre;
            global $nom;
            global $adr;
            global $adr2;
            global $cp;
            global $ville;
            global $date;
            global $id;

            // Logo
            $this->Image('design/logo-facture.png', 10, 10, 50, 0, 'PNG');

            //Titre et numéro de devis
            $this->Cell(60, 10, '', 0);
            $this->SetFont('Arial', 'B', 18);
            $this->Cell(80, 20, $titre, 0, 0, 'C');
            $this->SetFont('Arial', '', 13);
            $this->Cell(50, 10, $titre . utf8_decode(' n°') . $id, 0, 0, 'R');
            $this->Ln();

            //date
            $this->Cell(70, 10, '', 0);
            $this->Cell(90, 10, '', 0, 0, 'C');
            $this->Cell(30, 10, strftime('%d/%m/%Y', strtotime($date)), 0, 0, 'R');
            $this->Ln(14);

            //dans le cas de la première pas
            //Coordonées client et du magasin
            if ($this->PageNo() == 1) {
                $htLigne = 6;
                $this->SetFont('Arial', 'I', 10);
                $this->Cell(100, $htLigne, utf8_decode('L\'Aquarium'));
                $this->SetFont('Arial', '', 12);
                $this->Cell(139, $htLigne, utf8_decode($nom), 0, 0, 'L');
                $this->Ln($htLigne - 1);
                $this->SetFont('Arial', 'I', 10);
                $this->Cell(100, $htLigne, utf8_decode('116 rue Jean Jaurès'));
                $this->SetFont('Arial', '', 12);
                $this->Cell(139, $htLigne, utf8_decode($adr), 0, 0, 'L');
                $this->Ln($htLigne - 1);

                if ($adr2 != '') {
                    $this->SetFont('Arial', 'I', 10);
                    $this->Cell(100, $htLigne, utf8_decode('59410 Anzin'));
                    $this->SetFont('Arial', '', 12);
                    $this->Cell(139, $htLigne, utf8_decode($adr2), 0, 0, 'L');
                    $this->Ln($htLigne - 1);
                    $this->SetFont('Arial', 'I', 10);
                    $this->Cell(100, $htLigne, utf8_decode('03 27 41 17 63 - contact@aquarium-anzin.fr'));
                    $this->SetFont('Arial', '', 12);
                    $this->Cell(139, $htLigne, utf8_decode($cp . ' ' . $ville), 0, 0, 'L');
                } else {
                    $this->SetFont('Arial', 'I', 10);
                    $this->Cell(100, $htLigne, utf8_decode('59410 Anzin'));
                    $this->SetFont('Arial', '', 12);
                    $this->Cell(139, $htLigne, utf8_decode($cp . ' ' . $ville), 0, 0, 'L');
                    $this->Ln($htLigne - 1);
                    $this->SetFont('Arial', 'I', 10);
                    $this->Cell(100, $htLigne, utf8_decode('03 27 41 17 63 - contact@aquarium-anzin.fr'));
                }

                $this->Ln(8);
            }

            //Entête du tableau
            $this->SetFont('Arial', 'B', 11);
            $this->Cell(120, 10, utf8_decode('Désignation'), 1, 0, 'C');
            $this->Cell(10, 10, 'Qte', 1, 0, 'C');
            $this->Cell(20, 10, 'P.U. HT', 1, 0, 'C');
            $this->Cell(15, 10, 'T.V.A.', 1, 0, 'C');
            $this->Cell(25, 10, 'Total TTC', 1, 0, 'C');
            $this->Ln();
        }

        // Pied de page
        function Footer() {
            global $paiement;
            global $euro;
            switch ($paiement) {
                case 1:$paiementTitre = 'Chèque';
                    break;
                case 2:$paiementTitre = 'Espèce';
                    break;
                case 3:$paiementTitre = 'Virement';
                    break;
                case 4:$paiementTitre = 'Carte Bancaire';
                    break;
                default:$paiementTitre = '';
                    break;
            }
            // Positionnement à 1,5 cm du bas
            $this->SetY(-20);
            $this->SetFont('Arial', 'B', 10);
            if ($paiementTitre != '') {
                $this->Cell(190, 10, utf8_decode('Mode de paiement : ' . $paiementTitre . '. Paiement à récéption de la facture.'), 0, 0, 'L');
                $this->Ln(5);
            }
             
            $this->SetFont('Arial', 'I', 8);
            $this->Cell(190, 10, utf8_decode('Escompte pour réglement anticipé de 0% - Indemnité forfaitaire pour frais de recouvrement de 40') . $euro.'. SIREN : 398 588 020 RCS Valenciennes', 0, 0, 'L');
            $this->Ln(5);
            
            $this->Cell(165, 10, utf8_decode('Pénalité en cas de retard de paiement représentant 3 fois le taux d\'intéret légal soit 2,25%.'), 0, 0, 'L');
            // Numéro de page
            $this->Cell(25, 10, 'Page ' . $this->PageNo() . '/{nb}', 0, 0, 'R');
        }

    }

    $nom = $date = $adr = $adr2 = $cp = $ville = $paiement = $produit = '';
    $sql = 'SELECT * FROM `fact-client` WHERE `fact_id`=' . $id;
    $result = @mysql_query($sql);
    $nbr_actu = @mysql_num_rows($result);
    if ($nbr_actu > 0) {
        $data = @mysql_fetch_array($result);
        $date = $data['fact_date'];
        $nom = stripcslashes($data['fact_nom']);
        $adr = stripcslashes($data['fact_adr']);
        $adr2 = stripcslashes($data['fact_adr2']);
        $cp = stripcslashes($data['fact_cp']);
        $ville = stripcslashes($data['fact_ville']);
        $paiement = $data['fact_paiement'];
    }

    //on va afficher DEvis ou facture en fonciton du type de paiement
    if ($paiement > 0) {
        $titre = 'Facture';
    } else {
        $titre = 'Devis';
    }

    // Instanciation de la classe dérivée
    $pdf = new PDF();
    $pdf->AliasNbPages();
    $pdf->AddPage();
    $pdf->SetFont('Arial', '', 10);

    //on récupère tous les produits de ce client
    $sql = 'SELECT * FROM `fact-designation` WHERE `fact_id`=' . $id;
    $result = @mysql_query($sql);
    $nbr_produit = @mysql_num_rows($result);
    if ($nbr_produit > 0) {
        $tvaLast = '';
        while ($data = @mysql_fetch_array($result)) {
            $montant = $data['fact_qte'] * $data['fact_pu'];
            $puHT=round($data['fact_pu'] / (1 + ($data['fact_tva'] / 100)), 2);

            $pdf->Cell(120, 10, stripcslashes(utf8_decode($data['fact_desgn'])), 1, 0, 'L');
            $pdf->Cell(10, 10, utf8_decode($data['fact_qte']), 1, 0, 'C');
            $pdf->Cell(20, 10, number_format($puHT, 2, ',', ' ') . $euro, 1, 0, 'R');
            $pdf->Cell(15, 10, utf8_decode($data['fact_tva']) . '%', 1, 0, 'R');
            $pdf->Cell(25, 10, number_format($montant, 2, ',', ' ') . $euro, 1, 0, 'R');
            $pdf->Ln();
            $tvaTitre=$data['fact_tva'];

            //on calcul les différents totaux
            $total+=$montant;
            //permet de calculer les sommes des différentes TVA
            if ($tvaLast != $data['fact_tva']) {
                $tabTva[$data['fact_tva']]+=round($montant - ($montant / (1 + ($data['fact_tva'] / 100))), 2);
            }
            $totalHT+=round($montant - ($montant / (1 + ($data['fact_tva'] / 100))), 2);
        }
    }

    //les case total avec la tva
    $pdf->Ln(4);
    $pdf->SetFont('Arial', '', 9);
    $pdf->Cell(120, 8);
    $pdf->Cell(45, 8, 'Total HT : ', 1, 0, 'R');
    $pdf->Cell(25, 8, number_format($total - $totalHT, 2, ',', ' ') . $euro, 1, 0, 'R');
    $pdf->Ln();
    if (count($tabTva) > 1) {
        foreach ($tabTva as $key => $value) {
            $pdf->Cell(120, 8);
            $pdf->Cell(45, 8, utf8_decode('Total TVA à ' . $key . '% : '), 1, 0, 'R');
            $pdf->Cell(25, 8, number_format($value, 2, ',', ' ') . $euro, 1, 0, 'R');
            $pdf->Ln();
        }
        $pdf->Cell(120, 8);
        $pdf->Cell(45, 8, 'Total TVA : ', 1, 0, 'R');
        $pdf->Cell(25, 8, number_format($totalHT, 2, ',', ' ') . $euro, 1, 0, 'R');
        $pdf->Ln();
    } else {
        $pdf->Cell(120, 8);
        $pdf->Cell(45, 8, utf8_decode('Total TVA à ' . $tvaTitre . '% : '), 1, 0, 'R');
        $pdf->Cell(25, 8, number_format($totalHT, 2, ',', ' ') . $euro, 1, 0, 'R');
        $pdf->Ln();
    }


    $pdf->SetFont('Arial', 'B', 12);
    $pdf->Cell(120, 10);
    $pdf->Cell(45, 10, 'Total TTC : ', 1, 0, 'R');
    $pdf->Cell(25, 10, number_format($total, 2, ',', ' ') . $euro, 1, 0, 'R');
    $pdf->Ln();

    $pdf->Output();
}
?>